#!/bin/bash
source "sXterm.sh"
# это цвет текста списка перед курсором при значении 0 в переменной  UNMARK(){ $e "\e[0m";}
 MARK(){ $e "\e[1;30m";}
#
 HEAD()
{
 for (( a=2; a<=38; a++ ))
  do
   TPUT $a 1
        $E "\e[90m\xE2\x94\x82                                                                                \xE2\x94\x82\e[0m";
  done
}
 FOOT()
{
 MARK;
      TPUT  1 1;$E "\e[90m┌────────────────────────────────────────────────────────────────────────────────┐\033[0m";
      TPUT  2 1;$E "\e[90m├─ \e[1;36m Options \e[0m\e[36m Опции \e[0m\e[90m ─────────────────────────────────────────────────────────────┤\e[0m";
      TPUT  3 1;$E "\e[90m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
      TPUT  5 1;$E "\e[90m├ Эти параметры не устанавливают значение ресурса и обрабатываются особым образом┤\e[0m";
      TPUT 10 1;$E "\e[90m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
      TPUT 15 1;$E "\e[90m├─── Другие параметры используются для управления внешним видом и поведением. ───┤\e[0m";
      TPUT 16 1;$E "\e[90m├─── Не все параметры обязательно настроены в вашей копии xterm: ────────────────┤\e[0m";
      TPUT 36 1;$E "\e[90m├─ Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ─────────────────────────────────────────────────────┤\e[0m";
      TPUT 39 1;$E "\e[90m└────────────────────────────────────────────────────────────────────────────────┘\033[0m";
 UNMARK;
}
#
  M0(){ TPUT  4 3; $e "Oписание                                                         \e[32m Description \e[0m";}
#
  M1(){ TPUT  6 3; $e "Bыводит номер версии на стандартный вывод                           \e[32m -version \e[0m";}
  M2(){ TPUT  7 3; $e "Подсказка                                                              \e[32m -help \e[0m";}
  M3(){ TPUT  8 3; $e "Если логика не скомпилирована                                             \e[32m -z \e[0m";}
  M4(){ TPUT  9 3; $e "Oписание                                                         \e[32m Description \e[0m";}
#
  M5(){ TPUT 11 3; $e "Использование X Toolkit для синтаксического анализа параметров                ";}
  M6(){ TPUT 12 3; $e "Можно указать один параметр (после всех опций)                                ";}
  M7(){ TPUT 13 3; $e "использует все параметры, следующие за параметром                         \e[32m -e \e[0m";}
  M8(){ TPUT 14 3; $e "Xterm проверяет программы оболочки, находя их пути               \e[32m /etc/shells \e[0m";}
#
#
  M9(){ TPUT 17 3; $e "Последовательность VT102 DECCOLM, между 80 и 132 игнор.                 \e[32m -132 \e[0m";}
 M10(){ TPUT 18 3; $e "Xterm всегда должен выделять текстовый курсор                            \e[32m -ah \e[0m";}
 M11(){ TPUT 19 3; $e "Подсвечивать текстовый курсор в зависимости от фокуса                    \e[32m +ah \e[0m";}
 M12(){ TPUT 20 3; $e "Этот параметр отключает поддержку активных значков                       \e[32m -ai \e[0m";}
 M13(){ TPUT 21 3; $e "Этот параметр включает поддержку активных значков                        \e[32m +ai \e[0m";}
 M14(){ TPUT 22 3; $e "Этот параметр указывает разрешённый перенос                              \e[32m -aw \e[0m";}
 M15(){ TPUT 23 3; $e "Aвтоперенос не должен быть разрешен                                      \e[32m +aw \e[0m";}
 M16(){ TPUT 24 3; $e "Этот параметр определяет размер внутренней границы                 \e[32m -b number \e[0m";}
 M17(){ TPUT 25 3; $e "Установите скорость линии проверки поведения приложений     \e[32m -baudrate number \e[0m";}
 M18(){ TPUT 26 3; $e "Bключить мигание текстового курсора                                      \e[32m -bc \e[0m";}
 M19(){ TPUT 27 3; $e "Oтключить мигание текстового курсора                                     \e[32m +bc \e[0m";}
 M20(){ TPUT 28 3; $e "Установить время выключенного курсора                      \e[32m -bcf milliseconds \e[0m";}
 M21(){ TPUT 29 3; $e "Установить время, в течение которого текстовый курсор горит\e[32m -bcn milliseconds \e[0m";}
 M22(){ TPUT 30 3; $e "Установите для ресурса vt100 colorBDMode значение «false»               \e[32m -bdc \e[0m";}
 M23(){ TPUT 31 3; $e "Установите для ресурса vt100 colorBDMode значение «true»                \e[32m +bdc \e[0m";}
 M24(){ TPUT 32 3; $e "Установите ресурс vt100 cutToBeginningOfLine «false»                     \e[32m -cb \e[0m";}
 M25(){ TPUT 33 3; $e "Установите для ресурса vt100 cutToBeginningOfLine «true»                 \e[32m +cb \e[0m";}
 M26(){ TPUT 34 3; $e "Это устанавливает классы заданными диапазонами \e[32m -cc characterclassrange:value \e[0m";}
 M27(){ TPUT 35 3; $e "Установите для ресурса cjkWidth значение «true»                   \e[32m -cjk_width \e[0m";}
#
 M28(){ TPUT 37 3; $e "Далее                                                                   \e[36m Next \e[0m";}
 M29(){ TPUT 38 3; $e "                                                                        \e[36m Exit \e[0m";}
LM=29
   MENU(){ for each in $(seq 0 $LM);do M${each};done;}
    POS(){ if [[ $cur == up ]];then ((i--));fi
           if [[ $cur == dn ]];then ((i++));fi
           if [[ $i -lt 0   ]];then i=$LM;fi
           if [[ $i -gt $LM ]];then i=0;fi;}
REFRESH(){ after=$((i+1)); before=$((i-1))
           if [[ $before -lt 0  ]];then before=$LM;fi
           if [[ $after -gt $LM ]];then after=0;fi
           if [[ $j -lt $i      ]];then UNMARK;M$before;else UNMARK;M$after;fi
           if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
           UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
   INIT(){ R;HEAD;FOOT;MENU;}
     SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
# Функция возвращения в меню
     ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  while [[ "$O" != " " ]]; do case $i in
  0) S=M0;SC; if [[ $cur == enter ]];then R;echo "
   Поскольку xterm использует библиотеку X Toolkit, он принимает стандартные
 параметры командной строки X Toolkit.
 Xterm также принимает множество опций для конкретных приложений.
 По соглашению, если параметр начинается с «+» вместо «-»,
 для параметра восстанавливается значение по умолчанию.
   Большинство параметров xterm на самом деле анализируются X Toolkit,
 который устанавливает значения ресурсов и переопределяет соответствующие
 параметры ресурсов в ваших файлах ресурсов X.
 Xterm предоставляет X Toolkit таблицу опций.
 Некоторые из них помечены, указывая X Toolkit игнорировать их
 (-help, -version, -class, -e и -into).
 После того, как X Toolkit проанализировал параметры командной строки,
 он удаляет те из них, которые он обрабатывает,
 оставляя специально помеченные параметры для обработки xterm.
";ES;fi;;
  1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "
 Это приводит к тому, что xterm выводит номер версии на стандартный вывод:
\e[32m xterm -version\e[0m
 а затем завершает работу.
";ES;fi;;
  2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e "
 Это приводит к тому, что xterm выводит подробное сообщение с описанием своих
 параметров, по одному на строку:
\e[32m xterm -help\e[0m
 Сообщение записывается на стандартный вывод.
 После печати сообщения xterm завершает работу.
 Xterm генерирует это сообщение, сортируя его и отмечая,
 включает или выключает функцию опция «-» или «+»,
 поскольку исторически некоторые функции были теми или иными.
 Xterm генерирует краткое справочное сообщение (несколько опций в строке),
 когда используется неизвестная опция.
";ES;fi;;
  3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e "
   Если логика для определенного параметра, такого как ведение журнала,
 не скомпилирована в xterm, текст справки для этого параметра также не
 отображается с помощью параметра -help:
\e[32m xterm xterm -z\e[0m
";ES;fi;;
  4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e "
   Параметры -version и -help интерпретируются, даже если xterm не может
 открыть дисплей, и полезны для сценариев тестирования и настройки.
 Наряду с -class они проверяются перед другими параметрами.
 Для этого в xterm есть собственный (гораздо более простой) анализатор
 аргументов, а также таблица со встроенным списком опций X Toolkit.
";ES;fi;;
  5) S=M5;SC; if [[ $cur == enter ]];then R;echo "
   Использование X Toolkit для синтаксического анализа параметров и связанных
 значений имеет преимущества простоты и хорошей интеграции
 с механизмом ресурсов X. Есть несколько недостатков:
 • Xterm не может легко определить, было ли значение ресурса установлено одним
 из внешних файлов ресурсов или приложений по умолчанию, было ли оно установлено
 с помощью xrdb, или если он был установлен с помощью параметра -xrm или с помощью
 какого-либо непосредственно относящегося к делу параметра командной строки.
 Xterm видит только конечный результат, предоставленное значение
 при создании своих виджетов.
 • Xterm не знает порядка, в котором оцениваются определенные параметры и элементы
 в файлах ресурсов. Скорее, он видит все значения для данного виджета.
 в то же время. При разработке этих параметров некоторые из них считаются более
 важными и могут переопределять другие параметры.
 X Toolkit использует шаблоны (константы и подстановочные знаки) для сопоставления
 ресурсов. После того, как конкретный шаблон был использован, он не изменит его.
 Чтобы переопределить данной настройке необходимо использовать более конкретный шаблон,
 например, заменив «*» на «.». Некоторые плохо разработанные файлы ресурсов слишком
 специфичны, чтобы позволить параметры командной строки,
 чтобы повлиять на соответствующие значения виджета.
 • В некоторых случаях X Toolkit комбинирует свои стандартные опции так,
 что это плохо работает с xterm.
 Это происходит с цветом (-fg, -bg) и обратным (-rv) параметры.
 Xterm делает из них особый случай и настраивает свое «обратное» значение,
 чтобы уменьшить удивление пользователя.
";ES;fi;;
  6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e "
   Можно указать один параметр (после всех опций).
 Это отменяет встроенный в xterm выбор программы-оболочки:
 • Если параметр не является относительным путем, т. е. начинается с «./» или «../»,
 xterm ищет файл в пользовательской PATH. В любом случае эта проверка завершается
 ошибкой, если xterm не может создать абсолютный путь path.
 • Если эта проверка не удалась (или если такой параметр не задан),
 xterm затем проверяет переменную «SHELL».
 Если это указывает на исполняемый файл, xterm попытается запустить его.
 Однако xterm дополнительно проверяет, является ли это допустимой оболочкой,
 и отключает «SHELL», если это не так.
 • Если для «SHELL» не задан исполняемый файл, xterm пытается использовать программу
 оболочки, указанную в записи файла паролей пользователя.
 Как и прежде, xterm проверяет, является ли это допустимой оболочкой.
 • Наконец, если в записи файла паролей не указана допустимая оболочка,
 xterm использует /bin/sh.
";ES;fi;;
  7) S=M7;SC; if [[ $cur == enter ]];then R;echo -e "
\e[32m -e\e[0m
 Параметр -e нельзя использовать с этим параметром,
 так как он использует все параметры, следующие за параметром.
";ES;fi;;
  8) S=M8;SC; if [[ $cur == enter ]];then R;echo -e "
 Xterm проверяет программы оболочки, находя их пути в текстовом файле /etc/shells.
 Он обрабатывает переменную среды «SHELL» специально, потому что (как и «TERM»)
 xterm одновременно читает и обновляет переменную, а также потому, что программа,
 запускаемая xterm, не обязательно является оболочкой.
";ES;fi;;
  9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
\e[32m -132\e[0m
   Обычно управляющая последовательность VT102 DECCOLM, которая переключается
 между 80 и 132 столбцовыми режимами, игнорируется.
 Эта опция приводит к распознаванию управляющей последовательности DECCOLM,
 и размер окна xterm изменяется соответствующим образом.
";ES;fi;;
 10) S=M10;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -ah\e[0m
   Этот параметр указывает, что xterm всегда должен выделять текстовый курсор.
 По умолчанию xterm отображает пустой текстовый курсор всякий раз,
 когда фокус теряется или указатель покидает окно.
";ES;fi;;
 11) S=M11;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +ah\e[0m
 Этот параметр указывает,
 что xterm должен подсвечивать текстовый курсор в зависимости от фокуса.
";ES;fi;;
 12) S=M12;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -ai\e[0m
   Этот параметр отключает поддержку активных значков,
 если эта функция была скомпилирована в xterm.
 Это эквивалентно установке для параметра activeIcon ресурса vt100 значения
 «false».
";ES;fi;;
 13) S=M13;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +ai\e[0m
   Этот параметр включает поддержку активных значков,
 если эта функция была скомпилирована в xterm.
 Это эквивалентно установке для параметра activeIcon ресурса vt100 значения
 «true».
";ES;fi;;
 14) S=M14;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -aw\e[0m
   Этот параметр указывает, что автоперенос должен быть разрешен,
 и эквивалентен установке для параметра autoWrap ресурса vt100 значения «true».
 Автоматический перенос позволяет курсору автоматически перемещаться к началу
 следующей строки, когда он находится в крайнем правом положении строки
 и выводится текст.
";ES;fi;;
 15) S=M15;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +aw\e[0m
   Этот параметр указывает, что автоперенос не должен быть разрешен,
 и эквивалентен установке для параметра autoWrap ресурса vt100 значения «false».
";ES;fi;;
 16) S=M16;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -b number\e[0m
   Этот параметр определяет размер внутренней границы
 (расстояние между внешним краем символов и границей окна) в пикселях.
 Это ресурс внутренней границы vt100. По умолчанию «2».
";ES;fi;;
 17) S=M17;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -baudrate number\e[0m
   Установите скорость линии, используемую для проверки поведения приложений,
 которые используют скорость линии при оптимизации своего вывода на экран.
 По умолчанию «38400».
";ES;fi;;
 18) S=M18;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -bc\e[0m
 включить мигание текстового курсора. Это переопределяет ресурс cursorBlink.
";ES;fi;;
 19) S=M19;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +bc\e[0m
 отключить мигание текстового курсора. Это переопределяет ресурс cursorBlink.
";ES;fi;;
 20) S=M20;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -bcf milliseconds\e[0m
   установить время, в течение которого текстовый курсор выключен
 при мигании через ресурс cursorOffTime.
";ES;fi;;
 21) S=M21;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -bcn milliseconds\e[0m
 установить время,
 в течение которого текстовый курсор горит при мигании через ресурс cursorOnTime.
";ES;fi;;
 22) S=M22;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -bdc\e[0m
 Установите для ресурса vt100 colorBDMode значение «false»,
 отключив отображение символов с полужирным атрибутом в качестве цвета.
";ES;fi;;
 23) S=M23;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +bdc\e[0m
 Установите для ресурса vt100 colorBDMode значение «true»,
 что позволит отображать символы с полужирным атрибутом как цветные, а не полужирные.
";ES;fi;;
 24) S=M24;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -cb\e[0m
 Установите для ресурса vt100 cutToBeginningOfLine значение «false».
";ES;fi;;
 25) S=M25;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m +cb\e[0m
 Установите для ресурса vt100 cutToBeginningOfLine значение «true».
";ES;fi;;
 26) S=M26;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -cc characterclassrange:value[, ...]\e[0m
 Это устанавливает классы, указанные заданными диапазонами для использования
 при выборе по словам (см. КЛАССЫ СИМВОЛОВ и ресурс charClass).
";ES;fi;;
 27) S=M27;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m -cjk_width\e[0m
   Установите для ресурса cjkWidth значение «true».
 При включении символы с восточноазиатской неоднозначной категорией (A)
 в UTR 11 имеют ширину столбца 2.
 В противном случае они имеют ширину столбца 1.
 Это может быть полезно для некоторых устаревших программ на основе текстового
 терминала CJK, предполагающих рисование блоков и другие имеют ширину столбца 2.
 Его также следует включить, когда вы указываете шрифт двойной ширины TrueType CJK
 (двухширинный/моноширинный) либо с -fa в командной строке,
 либо в ресурсе faceName. По умолчанию «ложь».
";ES;fi;;
#
 28) S=M28;SC;if [[ $cur == enter ]];then R;./kXtermOptionsB.sh;ES;fi;;
 29) S=M29;SC;if [[ $cur == enter ]];then R;clear;exit 0;fi;;
 esac;POS;done
